package io.datajek.springbasics.movierecommendersystem.lesson7;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;

import java.util.Arrays;

@SpringBootApplication
public class MovieRecommenderSystemApplication {

    public static void main(String[] args){

        //ApplicationContext负责管理Bean和依赖关系。
        ApplicationContext appContext = SpringApplication.run(MovieRecommenderSystemApplication.class, args);

        //RecommenderImplementation使用构造函数注入依赖关系
        System.out.println("\n*************************************************");
        System.out.println("Calling getBean() on RecommenderImplementation");
        RecommenderImplementation recommender = appContext.getBean(RecommenderImplementation.class);
        String[] result = recommender.recommendMovies("Finding Dory");
        System.out.println(Arrays.toString(result));


        //RecommenderImplementation2使用setter方法注入依赖关系
        System.out.println("\n*************************************************");
        System.out.println("Calling getBean() on RecommenderImplementation2");
        RecommenderImplementation2 recommender2 = appContext.getBean(RecommenderImplementation2.class);
        result = recommender2.recommendMovies("Finding Dory");
        System.out.println(Arrays.toString(result));

    }
}
